import { reqDzList,reqHuizhu,reqHuzhu, reqMyZhuInfoList } from "../../../api/dz"
import { getStorage } from "../../../utils/storage"
import { env } from "../../../utils/env";
import { toast } from "../../../utils/extendApi";

// pages/order/list/index.js
Page({
  // 页面的初始数据
  data: {
    orderList: [1, 2, 3],
    dzList: [], // 商品列表数据
    count: 0,
    isFinish: false, // 判断数据是否加载完毕
    isLoading: false, // 判断数据是否记载完毕
    // 接口请求参数
    requestData: {
      page: 1, // 页码
      limit: 10, // 每页请求多少条数据
      uid: null
    },
    imgBaseURL: env.imgBaseURL,
  },


  
  // 获取商品列表的数据
  async getDzList() {
    // 数据真正请求中
    this.data.isLoading = true
      // 调用 API 获取数据
    const { data } = await reqMyZhuInfoList(this.data.requestData)
    // 数据加载完毕
    this.data.isLoading = false
    // 停止下拉刷新动画
    wx.stopPullDownRefresh();
    // 将返回的数据赋值给 data 中的变量
    this.setData({
      dzList:  [...this.data.dzList, ...data.list_data],
      count: data?.count
    })
  },

  // 互助操作
  async getHuzhu(z_uid) {
    let that = this
    reqHuizhu( { z_uid } ).then((huizhuRes) =>{
      if( huizhuRes.code === 200){
        that.showDialog( { ...huizhuRes.data, z_uid} )
      }else{
        setTimeout(() => {
          toast( { title:'助力失败，请联系客服',icon:'none' } )
        }, 100);
      }
    }).catch(() => {
      setTimeout(() => {
        toast( { title:'助力失败，请联系客服',icon:'none' } )
      }, 100);
    })
  },

  getReqHuzhu(z_uid){
    setTimeout(() => {
      toast( { title:'复制成功 请去拼多多助力',icon:'none' } )
    }, 100);
    this.hideDialog()

    // reqHuzhu( { uid:getStorage('userInfo').id,z_uid } ).then( () =>{
    // })
  },
   
  saveImage: function(event) {
    const { z_img , z_uid } = event.detail
     // 显示 loading
     wx.showLoading({
      title: '保存中...',
      mask: true, // 显示透明蒙层，防止触摸穿透
    });
    const that = this
    if (z_img) {
      wx.downloadFile({
        url: this.data.imgBaseURL + '/' + z_img,
        success: function(res) {
          if (res.statusCode === 200) {
            wx.saveImageToPhotosAlbum({
              filePath: res.tempFilePath,
              success: function() {
                that.getReqHuzhu(z_uid)
                wx.hideLoading(); // 隐藏 loading
              },
              fail: function(err) {
                wx.hideLoading(); // 隐藏 loading
                setTimeout( () => {
                  toast( { title:'图片保存失败',icon:'none' } )
                },100);
              }
            });
          }
        },
        fail: function(err) {
          wx.hideLoading(); // 隐藏 loading
          console.error('下载图片失败:', err);

          setTimeout( () => {
            toast( { title:'下载图片失败',icon:'none' } )
          },100);

        
        }
      });
    } else {
      wx.hideLoading(); // 隐藏 loading
      setTimeout( () => {
        toast( { title:'无图片可保存',icon:'none' } )
      },100);
    
    }
  },
  copyZCode: function(event) {
    const that = this
    const { z_code , z_uid } = event.detail
    wx.setClipboardData({
      data: z_code,
      success: function() {
        that.getReqHuzhu(z_uid)
      },
      fail: function(err) {
        console.error('复制 z_code 失败:', err);
        setTimeout( () => {
          toast( { title:'复制失败',icon:'none' } )
        },100);
      }
    });
  },

  huZhu(event){
    const { z_uid } = event.currentTarget.dataset;
    this.getHuzhu(z_uid)
  },

  // 显示对话框
  showDialog(e) {
    this.selectComponent('#showFormDialog').show(e);
  },

  // 隐藏对话框
  hideDialog() {
    this.selectComponent('#showFormDialog').hide();
    this.selectComponent('#showFormDialog').clearStatus();
  },


  // 取消
  onCancel() {
    this.hideDialog();
  },



  // 监听页面的下拉刷新
  onPullDownRefresh() {
    // 将数据进行重置
    this.setData({
      dzList: [],
      count: 0,
      isFinish: false,
      requestData: { ...this.data.requestData, page: 1 }
    })
    // 重新获取列表数据
    this.getDzList()
  },



  // 监听页面的上拉操作
  onReachBottom() {
    // 判断是否加载完毕，如果 isLoading 等于 true
    // 说明数据还没有加载完毕，不加载下一页数据
    if (this.data.isLoading) return
    const { count, dzList, requestData } = this.data
    let { page } = this.data.requestData

      // 判断数据是否加载完毕
    if (count === dzList.length) {
       // 如果相等，数据数据加载完毕
       // 如果数据加载完毕，需要给用户提示，同时不继续加载下一个数据
       this.setData({
         isFinish: true
       })
       return
     }
    // 页码 + 1
    this.setData({
      requestData: { ...this.data.requestData, page: page + 1 }
    })
    // 重新发送请求
    this.getDzList()
  },

     // 生命周期函数--监听页面加载
  onLoad(options) {
    // 从缓存中获取 userInfo
    const userInfo = wx.getStorageSync('userInfo');
    if (userInfo?.id) {
      // 动态设置 requestData.uid
      this.setData({
        'requestData.uid': userInfo.id,
      });
    } else {
      console.log('缓存中没有用户信息');
    }

    // 获取商品列表的数据
    this.getDzList()
  }
 
})


